/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import Entidades.Perfil;
import Entidades.Usuario;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;

/**
 *
 * @author diego
 */
public class JPAControllerPerfil extends JpaController {

    public List<Perfil> buscarPorVigencia(boolean vigencia) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "SELECT c FROM Perfil c WHERE c.vigentePerfil = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, vigencia);
        return query.getResultList();
    }

    public Integer buscarIDporNombre(String perfiles) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "SELECT c.idPerfil FROM Perfil c WHERE c.nombrePerfil = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, perfiles);
        return (Integer) query.getSingleResult();
    }

    public void borrarPerfilesViejos(Usuario idUsuario) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "DELETE FROM UsuarioPerfil c WHERE c.idUsuario = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, idUsuario);
        query.executeUpdate();
    }

    public void borrarPerfilesOperacionesViejos(Perfil idPerfil) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "DELETE FROM Perfil_Operacion c WHERE c.idPerfil = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, idPerfil);
        query.executeUpdate();
    }

    public List<Perfil> buscarPorid(Integer idPerfil) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "SELECT c FROM Perfil c WHERE c.idPerfil = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, idPerfil);
        return query.getResultList();
    }

    @Override
    public void begin() {
        ConexionAdmin.getInstance().begin();
    }

    @Override
    public void commit() {
        ConexionAdmin.getInstance().commit();
    }

    public List<Perfil> buscarPorNombre(String nombre) {
        EntityManager em = ConexionAdmin.getInstance().getEntityManager();
        String jpql = "SELECT c FROM Perfil c WHERE c.nombrePerfil = ?1";
        Query query = em.createQuery(jpql);
        query.setParameter(1, nombre);
        return query.getResultList();
    }
}
